#include "head.h"

// 子线程的入口函数
void *threadMain(void *p)
{
    // 需要有一些共享的资源
    status_t *status = (status_t *)p;
    
    while(1)
    {
        //判断是否有任务
        // 以下为共享资源，需要加锁解锁
        pthread_mutex_lock(&status->lock);

        while(status->queue.size <= 0)
        {
            // 阻塞，等待任务的出现
            pthread_cond_wait(&status->cond, &status->lock);
            // 被唤醒，有任务
        }

        // 取任务，从队头取net_fd;
        int net_fd = status->queue.head->net_fd;
        deQueue(&status->queue);

        pthread_mutex_unlock(&status->lock);
        
        // 和客户端进行交互
        SendFile(net_fd);
    }

    return NULL;
}
